package com.miyu.system.controller.sys;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.miyu.system.pojo.system.SysTask;
import com.miyu.system.pojo.system.SysTaskGroup;
import com.miyu.system.service.sys.TaskJobService;
import com.miyu.system.utils.enumeration.Result;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * 任务工作
 * @author longm
 * @date 2023/01/01
 */
@RestController
@RequestMapping("/sys-task")
public class TaskJob {
    @Resource
    private TaskJobService taskJobService;

    /**
     * 开始定时任务
     * @param job 工作
     * @return {@link JSONObject}
     */
    @RequestMapping("addjob")
    public JSONObject addjob(@RequestBody JSONObject job){
        return taskJobService.addjob(job);
    }

    /**
     * 暂停定时任务
     * @param job 工作
     * @return {@link JSONObject}
     */
    @RequestMapping("pausejob")
    public JSONObject pausejob(@RequestBody JSONObject job){
        return taskJobService.pausejob(job);
    }

    /**
     * 重启定时任务
     * @param job 工作
     * @return {@link JSONObject}
     */
    @RequestMapping("resumeJob")
    public JSONObject resumeJob(@RequestBody JSONObject job){
        return taskJobService.resumeJob(job);
    }

    /**
     * 删除任务
     * @param job 工作
     * @return {@link JSONObject}
     */
    @RequestMapping("deleteJob")
    public JSONObject deleteJob(@RequestBody JSONObject job){
        return taskJobService.deleteJob(job);
    }

    /**
     * 保存编辑系统任务
     * @param job 工作
     * @return {@link JSONObject}
     */
    @RequestMapping("editSysTask")
    public JSONObject editSysTask(@RequestBody JSONObject job){
       SysTask rs =  taskJobService.editSysTask(job);
        return Result.getInfoByCode("10001");
    }

    /**
     * 保存编辑任务分组
     * @param job 工作
     * @return {@link JSONObject}
     */
    @RequestMapping("editSysTaskGroup")
    public JSONObject editSysTaskGroup(@RequestBody JSONObject job){
        SysTaskGroup rs = taskJobService.editSysTaskGroup(job);
        return Result.getInfoByCode("10001");
    }

    /**
     * 获取系统任务集团字典
     * @return {@link JSONArray}
     */
    @RequestMapping("getSysTaskGroupDict")
    public JSONArray getSysTaskGroupDict(){
        return taskJobService.getSysTaskGroupDict();
    }

    /**
     * 定时任务查询
     * @param job 工作
     * @return {@link JSONArray}
     */
    @RequestMapping("querySysTask")
    public JSONArray querySysTask(@RequestBody JSONObject job){
        return taskJobService.querySysTask(job);
    }

    /**
     * 获取系统任务通过id
     * @param taskId 任务id
     * @return {@link SysTask}
     */
    @RequestMapping("getSysTaskById")
    public SysTask getSysTaskById(String taskId){
        return taskJobService.getSysTaskById(taskId);
    }

}
